$(function () {
    layui.config({
        base: 'static/layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index', 'form','table','layer','modeutils'], function(){
        var $ = layui.$
            ,table=layui.table
            ,form = layui.form
            ,layer=layui.layer;
            /*页面加载，先请求角色信息，遍历出下拉框*/
            $.ajax({
                url:'sysRole/list.do'
                ,dataType:'json'
                ,type:'post'
                ,success:function (result) {
                    var data=result.data;
                    var opt=" <option value=\"-1\" selected='selected' disabled='disabled'>没有可选择的角色</option>";
                    $("#rolename").append(opt);
                    if (data.length>=0){
                        for (var i =0;i<data.length;i++){
                            var option="<option value=\""+data[i].roleId+" \"";
                            option+=">"+data[i].roleDiscription+"</option>";
                            $("#rolename").append(option);
                        }
                        form.render('select','layuiadmin-form-role');
                    }
                }
            });
            var tableIns=null;
            /*通过角色ID查询关联的菜单,先获取select中的roleId*/
            form.on('select(selectRole)',function (data) {
                console.log(data.value);
                //默认没有选择指定的角色，不加载列表
                roleId=$("#rolename").val();
                /*渲染已经关联的菜单表格*/
                tableIns=table.render({
                    elem:'#LAY-app-content-list'
                    ,url:'sys/getrolemenu.do'
                    ,page:true
                    ,where:{
                        roleId:data.value
                    }
                    ,cols:[[//表头
                        {type: 'checkbox'}//开启复选框
                       /*,{field:'roleMenuId',title:'菜单角色关联序号',width:160}
                       ,{field:'roleId',title: '角色ID',width:80}*/
                        ,{field:'menuId',title: '菜单ID',width:160}
                        ,{field:'menuName',title: '菜单名',width:160}
                        ,{field:'menuDisc',title: '菜单描述',width:160}
                        ,{field:'menuStatus',title: '菜单状态', templet: '#buttonTpl',width:160}
                    ]] ,initSort: {
                        field: 'menuId' //设置初始化排序字段
                        ,type: 'asc'  //设置初始化排序方式 desc/asc
                    }
                    ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                        layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
                        //,curr: 5 //设定初始在第 5 页
                        ,groups: 5 //只显示 1 个连续页码
                        ,first: false //不显示首页
                        ,last: false //不显示尾页
                    }
                });

            });

            /*打开要关联菜单的窗口*/
            form.on('submit(LAY-user-role-addBTtn)',function (data) {
                //获取roleID
                var roleIdiop=$("#rolename").val();
                if (roleIdiop<0|| roleIdiop==null){
                    layer.confirm('请先选择角色', {icon: 0, title:'提示'}, function(index){
                        layer.close(index);
                    });
                    return false;
                }else {
                    /*先加载某个角色没有的菜单列表*/
                    table.render({
                        elem: '#LAY-add-roleMenu-list'
                        ,url: 'sys/getRoleNotHaveMenus.do'/*'sys/getRoleNotHaveMenus.do'*/
                        ,page:true
                        ,height:600
                        ,where: {
                            'roleId':roleIdiop
                        }
                        ,cols:[[//表头
                            {type: 'checkbox'}//开启复选框
                            ,{field:'menuId',title: '菜单ID',width:160}
                            ,{field:'menuName',title: '菜单名',width:160}
                            ,{field:'menuDisc',title: '菜单描述',width:160}
                            ,{field:'menuStatus',title: '菜单状态', templet: '#buttonTpl',width:160}
                        ]] ,initSort: {
                            field: 'menuId' //设置初始化排序字段
                            ,type: 'asc'  //设置初始化排序方式 desc/asc
                        }
                    });
                    /*打开选择窗口*/
                    layer.open({
                        type:1
                        ,area:'700px'
                        ,content:$('#show-rolemenu-form')
                    });
                }

            });

            form.on('submit(LAY-user-role-close)',function (data) {
            });

            /*提交要关联的菜单信息*/
            form.on('submit(LAY-user-role-add)',function (data) {
                //先获取选中行
                var checkStatus=table.checkStatus('LAY-add-roleMenu-list').data;
               /* console.log(checkStatus);*/
                //获取roleId
                var roleIdiop=$("#rolename").val();
                if (roleIdiop<0 || roleIdiop==null || checkStatus==null){
                    layer.alert("请先选择一个角色",{
                        icon:5
                        ,skin:'layer-ext-moon'
                    });
                    return false;
                }else if (checkStatus==null){
                    layer.alert("请先选择勾选菜单",{
                        icon:5
                        ,skin:'layer-ext-moon'
                    });
                    return false;
                }else {
                    var mids = [];
                    for (var i=0;i<checkStatus.length;i++){
                        mids.push(checkStatus[i].menuId);
                    }
                    $.ajax({
                        url:'sys/addRoleMenu.do'
                        ,dataType:'json'
                        ,type:'post'
                        ,data:{
                            'mids':mids
                            ,'roleId':roleIdiop
                        }
                        ,success:function (res) {
                            if (res.success){
                            layer.msg(res.msg);
                            }else {
                                layer.alert("提示"+res.msg,{
                                    icon:0
                                    ,skin:'layer-ext-moon'
                                });
                            }
                        }
                    });
                    //重载表格
                    tableIns.reload();
                }
            });

            /*删除要关联的菜单角色信息*/
            form.on('submit(LAY-user-role-deleteBTtn)',function (data) {
               //获取roleID
                var roleIdiop=$("#rolename").val();
                //获取选中的解除菜单
                var chexkStatus=table.checkStatus('LAY-app-content-list').data;
                /*console.log(chexkStatus);*/
                //数据校验
                if (roleIdiop<0||roleIdiop==null || chexkStatus==null){
                    layer.confirm('请选择角色或者勾选要解除菜单', {icon: 0, title:'提示'}, function(index){
                        layer.close(index);
                    });
                    return false;
                }else {
                    $.ajax({
                        url:'sys/batchDeleteRoleMenu.do'
                        ,dataType:'json',
                        contentType : "application/json;charset=utf-8"
                        ,type:'post'
                        ,data:JSON.stringify(chexkStatus)
                        ,success:function (res) {
                            if (res.success){
                                layer.msg(res.msg);
                            }else {
                                layer.alert("ERROR,"+res.msg,{
                                    icon:0
                                    ,skin:'layer-ext-moon'
                                });
                            }
                        }
                    });
                    //更新表格
                    tableIns.reload();
                }
            });
    })
});